<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const nums = [10,20,111,222,444,40,50]
        
        /*
            filter中的回调函数有一个要求,必须返回一个boolean值
            当返回true时,函数内部会自动将这次回调的n加入到新的数组中
            当返回false时,函数内部会过滤过这次的n
        */
        const new1Nums = nums.filter(function(n){
            return n < 100
        })
       console.log(new1Nums)

        //map函数的使用
        const new2Nums = new1Nums.map(function(n){
           return n * 2
       })
       console.log(new2Nums)

       /*
            reduce函数的使用
                对数组中所有内容进行汇总
                参数:
                    preValue: 上一次返回的值
                    n: 当前值
        */
       const total = new2Nums.reduce(function(preValue,n){
            return preValue + n
       },0) //传入一个初始值为0
       console.log(total)

       //箭头函数写法
       const sum = nums.filter(n => n < 100).map(n => n * 2).reduce((pre,n) => pre + n)
       console.log(sum)
    </script>
</body>
</html>